﻿using Ibp.Service.Entity.ODAEntity;
using OdaOperation.Core.Parameters;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Teigha.Core;

namespace OdaOperation.Core.Creators
{
    /// <summary>
    /// IReferenceCreator接口定义了创建块引用的方法
    /// </summary>
    public interface IReferenceCreator
    {
        /// <summary>
        /// 创建块引用的方法，接受多个参数用于定义块引用的属性
        /// </summary>
        /// <param name="layerName"></param>
        /// <param name="location"></param>
        /// <param name="odGeScale"></param>
        /// <param name="rotating"></param>
        /// <param name="mirrorPlane"></param>
        /// <param name="parameters"></param>
        void CreateBlockReference(
            string layerName,       // 图层名称
            DPoint location,        // 块引用的位置
            OdGeScale3d odGeScale = null,  // 缩放比例，默认为null
            double rotating = 0.0,  // 旋转角度，默认为0.0
            OdGePlane mirrorPlane = null,  // 镜像平面，默认为null
            ParameterSet parameters = null // 参数集，默认为null
        );

        /// <summary>
        /// 创建块引用的方法，接受一个ReferenceParameter对象作为参数
        /// </summary>
        /// <param name="parameter"></param>
        void CreateBlockReference(ReferenceParameter parameter);
    }

}
